%ifndef __NASMX_SHELL32_INC__
%define __NASMX_SHELL32_INC__

IMPORT CDefFolderMenu_Create2, 36
IMPORT CDefFolderMenu_Create, 36
IMPORT CallCPLEntry16, 24
IMPORT CheckEscapesA, 8
IMPORT CheckEscapesW, 8
IMPORT CommandLineToArgvW, 8
IMPORT DAD_AutoScroll, 12
IMPORT DAD_DragEnterEx2, 16
IMPORT DAD_DragEnterEx, 12
IMPORT DAD_DragLeave, 0
IMPORT DAD_DragMove, 8
IMPORT DAD_SetDragImage, 8
IMPORT DAD_ShowDragImage, 4
IMPORT DoEnvironmentSubstA, 8
IMPORT DoEnvironmentSubstW, 8
IMPORT DragAcceptFiles, 8
IMPORT DragFinish, 4
IMPORT DragQueryFileA, 16
IMPORT DragQueryFileAorW, 24
IMPORT DragQueryFileW, 16
IMPORT DragQueryPoint, 8
IMPORT DriveType, 4
IMPORT DuplicateIcon, 8
IMPORT ExtractAssociatedIconA, 12
IMPORT ExtractAssociatedIconExA, 16
IMPORT ExtractAssociatedIconExW, 16
IMPORT ExtractAssociatedIconW, 12
IMPORT ExtractIconA, 12
IMPORT ExtractIconExA, 20
IMPORT ExtractIconExW, 20
IMPORT ExtractIconResInfoA, 20
IMPORT ExtractIconResInfoW, 20
IMPORT ExtractIconW, 12
IMPORT ExtractVersionResource16W, 8
IMPORT FindExeDlgProc, 16
IMPORT FindExecutableA, 12
IMPORT FindExecutableW, 12
IMPORT FreeIconList, 8
IMPORT GetFileNameFromBrowse, 28
IMPORT ILAppendID, 12
IMPORT ILClone, 4
IMPORT ILCloneFirst, 4
IMPORT ILCombine, 8
IMPORT ILCreateFromPathA, 4
IMPORT ILCreateFromPathW, 4
IMPORT ILFindChild, 8
IMPORT ILFindLastID, 4
IMPORT ILFree, 4
IMPORT ILGetNext, 4
IMPORT ILGetSize, 4
IMPORT ILIsEqual, 8
IMPORT ILIsParent, 12
IMPORT ILLoadFromStream, 8
IMPORT ILRemoveLastID, 4
IMPORT ILSaveToStream, 8
IMPORT InternalExtractIconListA, 12
IMPORT InternalExtractIconListW, 12
IMPORT IsLFNDriveA, 4
IMPORT IsLFNDriveW, 4
IMPORT IsNetDrive, 4
IMPORT IsUserAnAdmin, 0
IMPORT OpenRegStream, 16
IMPORT PathCleanupSpec, 8
IMPORT PathGetShortPath, 4
IMPORT PathIsExe, 4
IMPORT PathIsSlowA, 8
IMPORT PathIsSlowW, 8
IMPORT PathMakeUniqueName, 20
IMPORT PathProcessCommand, 16
IMPORT PathQualify, 4
IMPORT PathResolve, 12
IMPORT PathYetAnotherMakeUniqueName, 16
IMPORT PickIconDlg, 16
IMPORT PifMgr_CloseProperties, 8
IMPORT PifMgr_GetProperties, 20
IMPORT PifMgr_OpenProperties, 16
IMPORT PifMgr_SetProperties, 20
IMPORT ReadCabinetState, 8
IMPORT RealDriveType, 8
IMPORT RealShellExecuteA, 40
IMPORT RealShellExecuteExA, 44
IMPORT RealShellExecuteExW, 44
IMPORT RealShellExecuteW, 40
IMPORT RegenerateUserEnvironment, 8
IMPORT RestartDialog, 12
IMPORT RestartDialogEx, 16
IMPORT SHAddFromPropSheetExtArray, 12
IMPORT SHAddToRecentDocs, 8
IMPORT SHAlloc, 4
IMPORT SHAppBarMessage, 8
IMPORT SHBindToParent, 16
IMPORT SHBrowseForFolderA, 4
IMPORT SHBrowseForFolderW, 4
IMPORT SHCLSIDFromString, 8
IMPORT SHChangeNotification_Lock, 16
IMPORT SHChangeNotification_Unlock, 4
IMPORT SHChangeNotify, 16
IMPORT SHChangeNotifyDeregister, 4
IMPORT SHChangeNotifyRegister, 24
IMPORT SHCloneSpecialIDList, 12
IMPORT SHCoCreateInstance, 20
IMPORT SHCreateDirectory, 8
IMPORT SHCreateDirectoryExA, 12
IMPORT SHCreateDirectoryExW, 12
IMPORT SHCreateFileExtractIconW, 16
IMPORT SHCreateProcessAsUserW, 4
IMPORT SHCreatePropSheetExtArray, 12
IMPORT SHCreateQueryCancelAutoPlayMoniker, 4
IMPORT SHCreateShellFolderView, 8
IMPORT SHCreateShellFolderViewEx, 8
IMPORT SHCreateShellItem, 16
IMPORT SHCreateStdEnumFmtEtc, 12
IMPORT SHDefExtractIconA, 24
IMPORT SHDefExtractIconW, 24
IMPORT SHDestroyPropSheetExtArray, 4
IMPORT SHDoDragDrop, 20
IMPORT SHEmptyRecycleBinA, 12
IMPORT SHEmptyRecycleBinW, 12
IMPORT SHEnumerateUnreadMailAccountsW, 16
IMPORT SHExtractIconsW, 32
IMPORT SHFileOperationA, 4
IMPORT SHFileOperationW, 4
IMPORT SHFindFiles, 8
IMPORT SHFind_InitMenuPopup, 16
IMPORT SHFlushClipboard, 0
IMPORT SHFlushSFCache, 0
IMPORT SHFormatDrive, 16
IMPORT SHFree, 4
IMPORT SHFreeNameMappings, 4
IMPORT SHGetAttributesFromDataObject, 16
IMPORT SHGetDataFromIDListA, 20
IMPORT SHGetDataFromIDListW, 20
IMPORT SHGetDesktopFolder, 4
IMPORT SHGetDiskFreeSpaceA, 16
IMPORT SHGetDiskFreeSpaceExA, 16
IMPORT SHGetDiskFreeSpaceExW, 16
IMPORT SHGetFileInfoA, 20
IMPORT SHGetFileInfoW, 20
IMPORT SHGetFolderLocation, 20
IMPORT SHGetFolderPathA, 20
IMPORT SHGetFolderPathAndSubDirA, 24
IMPORT SHGetFolderPathAndSubDirW, 24
IMPORT SHGetFolderPathW, 20
IMPORT SHGetIconOverlayIndexA, 8
IMPORT SHGetIconOverlayIndexW, 8
IMPORT SHGetImageList, 12
IMPORT SHGetInstanceExplorer, 4
IMPORT SHGetMalloc, 4
IMPORT SHGetNewLinkInfoA, 20
IMPORT SHGetNewLinkInfoW, 20
IMPORT SHGetPathFromIDListA, 8
IMPORT SHGetPathFromIDListW, 8
IMPORT SHGetRealIDL, 12
IMPORT SHGetSetFolderCustomSettingsW, 12
IMPORT SHGetSetSettings, 12
IMPORT SHGetSettings, 8
IMPORT SHGetShellStyleHInstance, 0
IMPORT SHGetSpecialFolderLocation, 12
IMPORT SHGetSpecialFolderPathA, 16
IMPORT SHGetSpecialFolderPathW, 16
IMPORT SHGetUnreadMailCountW, 24
IMPORT SHHandleUpdateImage, 4
IMPORT SHILCreateFromPath, 12
IMPORT SHInvokePrinterCommandA, 20
IMPORT SHInvokePrinterCommandW, 20
IMPORT SHIsFileAvailableOffline, 8
IMPORT SHLimitInputEdit, 8
IMPORT SHLoadInProc, 4
IMPORT SHLoadNonloadedIconOverlayIdentifiers, 0
IMPORT SHLoadOLE, 4
IMPORT SHMapIDListToImageListIndexAsync, 36
IMPORT SHMapPIDLToSystemImageListIndex, 12
IMPORT SHMultiFileProperties, 8
IMPORT SHObjectProperties, 16
IMPORT SHOpenFolderAndSelectItems, 16
IMPORT SHOpenPropSheetW, 28
IMPORT SHParseDisplayName, 20
IMPORT SHPathPrepareForWriteA, 16
IMPORT SHPathPrepareForWriteW, 16
IMPORT SHPropStgCreate, 32
IMPORT SHPropStgReadMultiple, 20
IMPORT SHPropStgWriteMultiple, 24
IMPORT SHQueryRecycleBinA, 8
IMPORT SHQueryRecycleBinW, 8
IMPORT SHReplaceFromPropSheetExtArray, 16
IMPORT SHRestricted, 4
IMPORT SHRunControlPanel, 8
IMPORT SHSetInstanceExplorer, 4
IMPORT SHSetLocalizedName, 12
IMPORT SHSetUnreadMailCountW, 12
IMPORT SHShellFolderView_Message, 12
IMPORT SHSimpleIDListFromPath, 4
IMPORT SHStartNetConnectionDialogW, 12
IMPORT SHTestTokenMembership, 8
IMPORT SHUpdateImageA, 16
IMPORT SHUpdateImageW, 16
IMPORT SHUpdateRecycleBinIcon, 0
IMPORT SHValidateUNC, 12
IMPORT SheChangeDirA, 4
IMPORT SheChangeDirExA, 4
IMPORT SheChangeDirExW, 4
IMPORT SheChangeDirW, 4
IMPORT SheConvertPathW, 12
IMPORT SheFullPathA, 12
IMPORT SheFullPathW, 12
IMPORT SheGetCurDrive, 0
IMPORT SheGetDirA, 8
IMPORT SheGetDirExW, 12
IMPORT SheGetDirW, 8
IMPORT SheGetPathOffsetW, 4
IMPORT SheRemoveQuotesA, 4
IMPORT SheRemoveQuotesW, 4
IMPORT SheSetCurDrive, 4
IMPORT SheShortenPathA, 8
IMPORT SheShortenPathW, 8
IMPORT ShellAboutA, 16
IMPORT ShellAboutW, 16
IMPORT ShellExecuteA, 24
IMPORT ShellExecuteExA, 4
IMPORT ShellExecuteExW, 4
IMPORT ShellExecuteW, 24
IMPORT ShellHookProc, 12
IMPORT ShellMessageBoxA
IMPORT ShellMessageBoxW
IMPORT Shell_GetCachedImageIndex, 12
IMPORT Shell_GetImageLists, 8
IMPORT Shell_MergeMenus, 24
IMPORT Shell_NotifyIconA, 8
IMPORT Shell_NotifyIconW, 8
IMPORT SignalFileOpen, 4
IMPORT WOWShellExecute, 28
IMPORT Win32DeleteFile, 4
IMPORT WriteCabinetState, 4

%ifdef UNICODE

%define CheckEscapes CheckEscapesW
%define DoEnvironmentSubst DoEnvironmentSubstW
%define DragQueryFile DragQueryFileW
%define ExtractAssociatedIcon ExtractAssociatedIconW
%define ExtractAssociatedIconEx ExtractAssociatedIconExW
%define ExtractIcon ExtractIconW
%define ExtractIconEx ExtractIconExW
%define ExtractIconResInfo ExtractIconResInfoW
%define FindExecutable FindExecutableW
%define ILCreateFromPath ILCreateFromPathW
%define InternalExtractIconList InternalExtractIconListW
%define IsLFNDrive IsLFNDriveW
%define PathIsSlow PathIsSlowW
%define RealShellExecute RealShellExecuteW
%define RealShellExecuteEx RealShellExecuteExW
%define SHBrowseForFolder SHBrowseForFolderW
%define SHCreateDirectoryEx SHCreateDirectoryExW
%define SHDefExtractIcon SHDefExtractIconW
%define SHEmptyRecycleBin SHEmptyRecycleBinW
%define SHFileOperation SHFileOperationW
%define SHGetDataFromIDList SHGetDataFromIDListW
%define SHGetDiskFreeSpace SHGetDiskFreeSpaceW
%define SHGetDiskFreeSpaceExW SHGetDiskFreeSpaceExW
%define SHGetFileInfo SHGetFileInfoW
%define SHGetFolderPath SHGetFolderPathW
%define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW
%define SHGetIconOverlayIndex SHGetIconOverlayIndexW
%define SHGetNewLinkInfo SHGetNewLinkInfoW
%define SHGetPathFromIDList SHGetPathFromIDListW
%define SHGetSpecialFolderPath SHGetSpecialFolderPathW
%define SHInvokePrinterCommand SHInvokePrinterCommandW
%define SHPathPrepareForWrite SHPathPrepareForWriteW
%define SHQueryRecycleBin SHQueryRecycleBinW
%define SHUpdateImage SHUpdateImageW
%define SheChangeDir SheChangeDirW
%define SheChangeDirEx SheChangeDirExW
%define SheFullPath SheFullPathW
%define SheGetDir SheGetDirW
%define SheRemoveQuotes SheRemoveQuotesW
%define SheShortenPath SheShortenPathW
%define ShellAbout ShellAboutW
%define ShellExecute ShellExecuteW
%define ShellExecuteEx ShellExecuteExW
%define ShellMessageBox ShellMessageBoxW
%define Shell_NotifyIcon Shell_NotifyIconW

%else  ;// ANSI

%define CheckEscapes CheckEscapesA
%define DoEnvironmentSubst DoEnvironmentSubstA
%define DragQueryFile DragQueryFileA
%define ExtractAssociatedIcon ExtractAssociatedIconA
%define ExtractAssociatedIconEx ExtractAssociatedIconExA
%define ExtractIcon ExtractIconA
%define ExtractIconEx ExtractIconExA
%define ExtractIconResInfo ExtractIconResInfoA
%define FindExecutable FindExecutableA
%define ILCreateFromPath ILCreateFromPathA
%define InternalExtractIconList InternalExtractIconListA
%define IsLFNDrive IsLFNDriveA
%define PathIsSlow PathIsSlowA
%define RealShellExecute RealShellExecuteA
%define RealShellExecuteEx RealShellExecuteExA
%define SHBrowseForFolder SHBrowseForFolderA
%define SHCreateDirectoryEx SHCreateDirectoryExA
%define SHDefExtractIcon SHDefExtractIconA
%define SHEmptyRecycleBin SHEmptyRecycleBinA
%define SHFileOperation SHFileOperationA
%define SHGetDataFromIDList SHGetDataFromIDListA
%define SHGetDiskFreeSpace SHGetDiskFreeSpaceA
%define SHGetDiskFreeSpaceExW SHGetDiskFreeSpaceExA
%define SHGetFileInfo SHGetFileInfoA
%define SHGetFolderPath SHGetFolderPathA
%define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
%define SHGetIconOverlayIndex SHGetIconOverlayIndexA
%define SHGetNewLinkInfo SHGetNewLinkInfoA
%define SHGetPathFromIDList SHGetPathFromIDListA
%define SHGetSpecialFolderPath SHGetSpecialFolderPathA
%define SHInvokePrinterCommand SHInvokePrinterCommandA
%define SHPathPrepareForWrite SHPathPrepareForWriteA
%define SHQueryRecycleBin SHQueryRecycleBinA
%define SHUpdateImage SHUpdateImageA
%define SheChangeDir SheChangeDirA
%define SheChangeDirEx SheChangeDirExA
%define SheFullPath SheFullPathA
%define SheGetDir SheGetDirA
%define SheRemoveQuotes SheRemoveQuotesA
%define SheShortenPath SheShortenPathA
%define ShellAbout ShellAboutA
%define ShellExecute ShellExecuteA
%define ShellExecuteEx ShellExecuteExA
%define ShellMessageBox ShellMessageBoxA
%define Shell_NotifyIcon Shell_NotifyIconA

%endif  ;// UNICODE

%endif  ;// __NASMX_SHELL32_INC__